﻿package zf.data.ds.node
{
	/**
	 * 单向链表节点，包含一个指针，一个数据 
	 * @author Mike.zhang
	 * @langversion 3.0 
	 * @playerversion Flash 9 
	 * @see zf.data.ds.SLinkedList
	 */
	public class SListNode
	{
		private var _data:*;
		private var _next:SListNode;
		/**
		 * 创建单向链表节点 
		 * @param d 数据
		 * 
		 */
		public function SListNode (obj:*=null)
		{
			_data=obj;
		}
		/**
		 * 节点存储的数据 
		 * @return 数据
		 * 
		 */
		public function get data ():*
		{
			return _data;
		}

		public function set data (v:*):void
		{
			_data=v;
		}

		/**
		 * 指针，一般指向下个节点 
		 * @return 一个单向链表节点
		 * 
		 */
		public function get next ():SListNode
		{
			return _next;
		}

		public function set next (v:SListNode):void
		{
			_next=v;
		}
		/**
		 * 在该节点后插入一个节点
		 * @param node 要插入的节点
		 * 
		 */
		public function insertAfter (node:SListNode):void
		{
			node.next=next;
			next=node;
		}
		/**
		 * 返回该节点的数据描述 
		 * @return 数据描述
		 * 
		 */
		public function toString ():String
		{
			return "" + _data;
		}
	}
}